package com.mini.core;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.beans.factory.InitializingBean;
import org.springframework.context.support.ApplicationObjectSupport;

import com.mini.core.utils.PathKit;
import com.mini.core.utils.StrKit;

/**
 * 数据库路由选择器 提供读写服务器选择（多个读机器按随机选择模式，写机器默认一个吧，同一个表分布做不同的机器写怎么办？？？）
 * 按业务自定义选择（根据key选择）
 * 
 * bean xml 配置：
 * 
 * <bean="database1" class=""> <property name="servers"> <list>
 * <value>key1,W,template</value> <value>key2,R,template</value>
 * <value>key3,R,template</value> </list> </property> </bean>
 * 
 * @author sxjun
 * @date 2014-7-9 下午3:49:07
 * 
 */
public class DatabaseRouter extends ApplicationObjectSupport implements InitializingBean{
	private final Log logger = LogFactory.getLog(DatabaseRouter.class);
	
	private String entityPackage;

	public String getEntityPackage() {
		return entityPackage;
	}


	public void setEntityPackage(String entityPackage) {
		this.entityPackage = entityPackage;
	}


	/**
	 * 解析配置信息
	 */
	public void afterPropertiesSet() throws Exception {
		ApplicationContextHelper.setApplicationContext(getApplicationContext());
		// 执行初始化
		if(StrKit.notBlank(entityPackage))
			EntityContainer.init(entityPackage);
	}
	
}
